// 定义基础类型
let a1: number = 100
let a2: string = '100'
let a3: boolean = false
let a4: null = null // null类型的变量只能赋值为null
let a5: undefined = undefined // undefined类型的变量只能赋值为undefined
let a6: symbol = Symbol('11') // 唯一值数据类型
// 定义完类型后, 会有更全的代码提示
// 类型确定后不能赋值为其他类型的数据

// 几种常见的类型描述
// any 任意的类型, (使用any代表放弃了类型校验)
let a7: any = 123
a7 = '123/'

// nerver 不存在的类型
let a8: string & number

// void 没有值的类型, 常见于函数没有返回值时定义类型
const a9 = (): void => { }

// unknown 不确定的类型, 使用后, 需要使用类型断言来确定类型/(或者使用typeof/instansof类型判断后可以暂时确定类型)
let a10: unknown
a10 = 100
  ; (a10 as number);
